home *** CD-ROM | disk | FTP | other *** search
- // menu items
- #define mApple 128
- #define iAbout 1
-
- #define mFile 129
- #define iClose 1
- #define iQuit 2
-
- // dialog items
- #define iControl 1
- #define iOption 3
- #define iShift 4
- #define iCommand 5
-
- #define iSize 7
- #define iSwitch 11
- #define iHideApps 12
-
- #include <sound.h>
- #include "AppPrefs.h"
-
- Boolean gQuitting;
- DialogPtr gDialog;
- SpotlightGlobals *globptr;
- SpotlightPrefs myPrefs;
-
- void EventLoop(void);
- void DoMouseDown(EventRecord *event);
- void DoMenuCommand(long result);
- void AttemptQuit(void);
-
- void main(void)
- {
- Handle itemHan;
- Rect itemRect;
- short itemType;
- GrafPtr oldPort;
-
- MaxApplZone();
-
- InitGraf(&qd.thePort);
- InitFonts();
- InitWindows();
- InitMenus();
- TEInit();
- InitDialogs(nil);
- InitCursor();
-
- PrefsLoad(&myPrefs);
- if (Gestalt('liTE', (long*)&globptr) != noErr) globptr = nil;
-
- itemHan = GetNewMBar(128);
- if (itemHan == nil) return;
- SetMenuBar(itemHan);
- DisposeHandle(itemHan);
- AppendResMenu(GetMenuHandle(mApple), 'DRVR');
- DrawMenuBar();
-
- gDialog = GetNewDialog(128, nil, (WindowPtr)-1);
- if (gDialog == nil) return;
- GetPort(&oldPort);
- SetPort(gDialog);
-
- GetDialogItem(gDialog, iControl, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.activateModifiers & controlKey);
- GetDialogItem(gDialog, iOption, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.activateModifiers & optionKey);
- GetDialogItem(gDialog, iShift, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.activateModifiers & shiftKey);
- GetDialogItem(gDialog, iCommand, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.activateModifiers & cmdKey);
-
- GetDialogItem(gDialog, iSwitch, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.switchToFinder);
- GetDialogItem(gDialog, iHideApps, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, myPrefs.hideApps);
-
- {
- Str255 sizeStr;
- GetDialogItem(gDialog, iSize, &itemType, &itemHan, &itemRect);
- NumToString(myPrefs.spotlightSize, sizeStr);
- SetDialogItemText(itemHan, sizeStr);
- SelectDialogItemText(gDialog, iSize, 0, 32767);
- }
-
- ShowWindow(gDialog);
-
- gQuitting = false;
- EventLoop();
-
- PrefsSave(&myPrefs);
- if (globptr != nil) {
- globptr->prefs = myPrefs;
- CALL_ZERO_PARAMETER_UPP(globptr->makeSpotlightUPP, uppMakeSpotlightInfo);
- }
-
- DisposeDialog(gDialog);
- SetPort(oldPort);
- }
-
- void EventLoop(void) {
- EventRecord event;
- Boolean gotEvent;
-
- while (!gQuitting) {
- gotEvent = WaitNextEvent(everyEvent, &event, 10, nil);
- if (IsDialogEvent(&event)) {
- short itemHit;
-
- if ((event.what == keyDown || event.what == autoKey) && (event.modifiers & cmdKey)) {
- DoMenuCommand(MenuKey(event.message & charCodeMask));
- }
- else {
- DialogSelect(&event, &gDialog, &itemHit);
- switch (itemHit) {
- case iControl:
- case iOption:
- case iShift:
- case iCommand:
- case iSwitch:
- case iHideApps: {
- Handle itemHan;
- Rect itemRect;
- short itemType;
-
- GetDialogItem(gDialog, itemHit, &itemType, &itemHan, &itemRect);
- SetControlValue((ControlHandle)itemHan, !GetControlValue((ControlHandle)itemHan));
-
- break;
- }
- }
- }
- }
- else if (gotEvent) {
- switch (event.what) {
- case mouseDown:
- DoMouseDown(&event);
- break;
- case osEvt:
- SetCursor(&qd.arrow);
- break;
- case diskEvt:
- if (HiWord(event.message) != noErr) {
- Point pt;
- SetPt(&pt, 100, 100);
- DIBadMount(pt, event.message);
- }
- break;
- }
- }
- }
- }
-
- void DoMouseDown(EventRecord *event) {
- WindowPtr window;
- SInt16 part;
-
- part = FindWindow(event->where, &window);
- switch (part) {
- case inMenuBar:
- DoMenuCommand(MenuSelect(event->where));
- break;
- case inSysWindow:
- SystemClick(event, window);
- break;
- case inDrag:
- DragWindow(window, event->where, &qd.screenBits.bounds);
- SelectWindow(window);
- break;
- case inContent:
- if (window != FrontWindow()) SelectWindow(window);
- break;
- case inGoAway:
- if (TrackGoAway(window, event->where)) AttemptQuit();
- break;
- }
- }
-
- void DoMenuCommand(long result) {
- SInt16 menu, item;
- Str255 str;
-
- menu = HiWord(result);
- item = LoWord(result);
-
- switch (menu) {
- case mApple:
- switch (item) {
- case iAbout:
- Alert(129, nil);
- break;
- default:
- GetMenuItemText(GetMenuHandle(mApple), item, str);
- OpenDeskAcc(str);
- }
- break;
- case mFile:
- switch (item) {
- case iClose:
- case iQuit:
- AttemptQuit();
- break;
- }
- break;
- }
-
- HiliteMenu(0);
- }
-
- void AttemptQuit(void) {
- Handle itemHan;
- short itemType;
- Rect itemRect;
-
- long num;
- Str255 str;
-
- myPrefs.activateModifiers = myPrefs.disableModifiers = 0;
-
- GetDialogItem(gDialog, iControl, &itemType, &itemHan, &itemRect);
- if (GetControlValue((ControlHandle)itemHan)) {
- myPrefs.activateModifiers |= controlKey;
- myPrefs.disableModifiers |= controlKey | rightControlKey;
- }
- GetDialogItem(gDialog, iOption, &itemType, &itemHan, &itemRect);
- if (GetControlValue((ControlHandle)itemHan)) {
- myPrefs.activateModifiers |= optionKey;
- myPrefs.disableModifiers |= optionKey | rightOptionKey;
- }
- GetDialogItem(gDialog, iShift, &itemType, &itemHan, &itemRect);
- if (GetControlValue((ControlHandle)itemHan)) {
- myPrefs.activateModifiers |= shiftKey;
- myPrefs.disableModifiers |= shiftKey | rightShiftKey;
- }
- GetDialogItem(gDialog, iCommand, &itemType, &itemHan, &itemRect);
- if (GetControlValue((ControlHandle)itemHan)) {
- myPrefs.activateModifiers |= cmdKey;
- myPrefs.disableModifiers |= cmdKey;
- }
-
- if (myPrefs.activateModifiers == 0) {
- SysBeep(10);
- return;
- }
-
- GetDialogItem(gDialog, iSwitch, &itemType, &itemHan, &itemRect);
- myPrefs.switchToFinder = GetControlValue((ControlHandle)itemHan);
- GetDialogItem(gDialog, iHideApps, &itemType, &itemHan, &itemRect);
- myPrefs.hideApps = GetControlValue((ControlHandle)itemHan);
-
- GetDialogItem(gDialog, iSize, &itemType, &itemHan, &itemRect);
- GetDialogItemText(itemHan, str);
- StringToNum(str, &num);
- myPrefs.spotlightSize = num;
-
- if (myPrefs.spotlightSize < 10) {
- SetDialogItemText(itemHan, "\p10");
- SelectDialogItemText(gDialog, iSize, 0, 32767);
- SysBeep(10);
- }
- else if (myPrefs.spotlightSize > 500) {
- SetDialogItemText(itemHan, "\p500");
- SelectDialogItemText(gDialog, iSize, 0, 32767);
- SysBeep(10);
- }
- else {
- gQuitting = true;
- }
- }